<?php
namespace Home\Controller;
use Think\Controller;

/**
 * 登录控制
 */
class LoginController extends Controller {
    //全局变量区
    /**
     * 登录结果变量
     * 0：登录成功
     * 1：没有输入用户名
     * 2：密码错误
     * 3：验证码错误
     */
    public $loginResult_correct = 0;
    public $loginResult_err_no_name = 1;
    public $loginResult_err_password = 2;
    public $loginResult_err_verify = 3;
    public $userName="mzz";

    /**
     * 用户登录
     */
    public function userLogin(){
        $this->display();
    }

    /**
     * 跳转回主页
     */
    public function returnIndex(){

        $userName = $_GET['username'];
        $this->assign('user_name', $userName);
        $this->display('Index/index');
    }
    /**
     * 用户登录逻辑
     */
    public function userLoginHandel(){
        // 实例化Login对象
        $login = M('user_table');

        $resultList = array();

        $data = $login->create();

        //验证码验证
        $verify = $_POST['verify'];
        if(!checkVerify($verify)){
            $resultList['if_login_failed'] = $this->loginResult_err_verify;
        }else{
            // 组合查询条件
            $where = array();
            $where['name'] = $data['name'];
            $result = $login->where($where)->field('id, access, name, password')->find();

            if(!$where['name'])
            {
               $resultList['if_login_failed'] = $this->loginResult_err_no_name;
            }else{
                // 验证用户名 对比 密码
                if ($result && $result['password'] == $data['password']) {
                    // 更新用户登录信息
                    $new_date['last_login_time'] = date("y-m-d H:i:s");
                    $refreshDateResult = $login->where($where)->save($new_date);
                    
                    //session控制
                    session('id', $result['id']);
                    session('name', $result['name']);
                    session('access', $result['access']);
                    session('password', $result['password']);

                    //向前端传递信息
                    $resultList['if_login_failed'] = $this->loginResult_correct;
                    $resultList['username'] = $data['name'];
                } else {
                    $resultList['if_login_failed'] = $this->loginResult_err_password;
                }
            }
        }

        $this->ajaxReturn($resultList);
    }

    /**
     * 登录请求处理
     */
    public function login()
    {
        // 判断提交方式
        if (IS_POST) {
            // 实例化Login对象
            $login = M('user_table');

            // 自动验证 创建数据集
            if (!$data = $login->create()) {
                // 防止输出中文乱码
                header("Content-type: text/html; charset=utf-8");
                exit($login->getError());
            }

            //验证码验证
            $verify = $_POST['verify'];
            if(!checkVerify($verify)){
                $this->redirect('Index/login', array('if_login_failed'=>$this->loginResult_err_verify), 0);
            }else{
                // 组合查询条件
                $where = array();
                $where['name'] = $data['name'];
                $result = $login->where($where)->field('id, access, name, password')->find();

                if(!$where['name'])
                {
                    $this->redirect('Index/index', array('if_login_failed'=>$this->loginResult_err_no_name), 0);
                }else{
                    // 验证用户名 对比 密码
                    if ($result && $result['password'] == $data['password']) {
                        // 更新用户登录信息
                        $where['last_login_time'] = date("y-m-d H:i:s");
                
                        $this->redirect('Index/login', array('if_login_failed'=>$this->loginResult_correct, 'id'=>$result['id'], 'access'=>$result['access'], 'name'=>$data['name']), 0);
                    } else {
                        $this->redirect('Index/login', array('if_login_failed'=>$this->loginResult_err_password), 0);
                    }
                }
            }     
        }
    }

    /**
     * 商户管理登录界面
     */ 
    public function bizlogin() {
        //var_dump($_SESSION);
        $this->display();
    }

    /**
     * 登录完成返回主页并传递相关信息
     * if_login_failed：登录结果
     * name：用户名
     */
    public function bizlogin_handler(){
        // $verify = $_POST['verify'];
        // if($verify==null||$verify==""){
        //     $this->error('验证码不能为空！');
        //     return;
        // }
        // $verify_chk = new \Think\Verify();
        // if(!$verify_chk->check($verify, "")){
        //     $this->error('验证码有误！');
        //     return;
        // }
        // 实例化Login对象
        $login = D('UserTable');
        $data = I('post.');
        // 自动验证 创建数据集
        if (!$login->create($data)) {
            // 防止输出中文乱码
            header("Content-type: text/html; charset=utf-8");
            $this->error($login->getError());
            return;
        }
        // 组合查询条件
        $where = array();
        $where['name'] = $data['name'];
        $result = M('User_table')->where($where)->field('id, access, name, password')->find();

        if(!$result)
        {
            $this->error("不存在此用户！");
            return;
        }      
        // 验证用户名 对比 密码
        if ($result && $result['password'] == $data['password']) {
            if($result['access'] == $data['access']) {
                //session控制 
                session('id', $result['id']);
                session('name', $result['name']);
                session('access', $result['access']);
                session('password', $result['password']);
                //$this->redirect('__APP__/Home/Bizhomepage/index');
                $this->redirect(U('Bizhomepage/index'));
            } else {
                $this->error("用户身份不符！");
            }                                  
        } else {
            $this->error("密码与用户名不匹配！");
            return;
        }
                   
    }

}